Managing the storage of media content

ABSTRACT

A method for managing media storage. The method includes determining, by a computer, that storage space is needed on a storage device, wherein the storage device stores one or more media files. The method includes determining a likely viewing device for a media file selected from the one or more media files and converting the media file from a first format to a second format, based on the determined likely viewing device.

FIELD OF THE INVENTION

The present invention relates generally to the field of media storagesystems, and more particularly to managing the storage of media content.

BACKGROUND OF THE INVENTION

A digital video recorder (DVR) or personal video recorder (PVR) is adevice that records media content, such as video, in a digital format toa disk drive or other storage medium. A user may schedule selected mediacontent to be recorded, either to a local storage device within a DVR orPVR, or to a remote media server accessible through a communicationsnetwork. In addition to scheduling a recording, the user may add theselected content to a favorites list, set a reminder for the mediacontent, or schedule an entire series for recording. The recorded mediacontent can then be accessed by a variety of electronic devices, such asa television or personal computer, capable of video playback, andconnected to the DVR or PVR through the network.

The ease at which users can record media content often results inover-recording. For example, after missing several weeks of a recordedseries, a user may have dozens of recorded, unseen episodes available ona DVR or remote media server. The user may not have time to watch allthe recorded episodes or even be interested in watching them. Over time,DVRs or other media storage devices may be full, requiring users todelete previously-recorded media content before additional media contentcan be recorded. Many DVRs automatically delete media to make room forscheduled recordings in a manner where users have little or no controlover what is deleted.

SUMMARY

Embodiments of the present invention disclose a method, computer programproduct, and computer system for managing media storage. The methodincludes determining, by a computer, that storage space is needed on astorage device, wherein the storage device stores one or more mediafiles. The method includes determining a likely viewing device for amedia file selected from the one or more media files. The method furtherincludes converting the media file from a first format to a secondformat, based on the determined likely viewing device.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a media viewingenvironment, in accordance with an embodiment of the present invention.

FIG. 2 is a flowchart depicting operational steps of a conversionprogram, for selecting and converting media content based on the viewingdevice of the media content, in accordance with an embodiment of thepresent invention.

FIG. 3 depicts a block diagram of components of a media recordingdevice, such as the media recording device of FIG. 1, in accordance withan embodiment of the present invention.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer readable program code/instructions embodiedthereon.

Any combination of computer-readable media may be utilized.Computer-readable media may be a computer-readable signal medium or acomputer-readable storage medium. A computer-readable storage medium maybe, for example, but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, ordevice, or any suitable combination of the foregoing. More specificexamples (a non-exhaustive list) of a computer-readable storage mediumwould include the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device, a magneticstorage device, or any suitable combination of the foregoing. In thecontext of this document, a computer-readable storage medium may be anytangible medium that can contain, or store a program for use by or inconnection with an instruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java®, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on a user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating a mediaviewing environment, generally designated 100, in accordance with oneembodiment of the present invention.

Media viewing environment 100 includes media recording device 120,televising device 130, computing device 140 and mobile device 150, allinterconnected over network 110.

Network 110 can be, for example, a local area network (LAN), a wide areanetwork (WAN) such as the internet, or a combination of the two, and caninclude wired, wireless, or fiber optic connections. In general, network110 can be any combination of connections and protocols that willsupport communications between and among media recording device 120,televising device 130, computing device 140, and mobile device 150.

Media recording device 120 includes media storage 122 and conversionprogram 124, and is a device that can record media content in a digitalformat to a storage device, for example, media storage 122. In variousembodiments of the present invention, media recording device 120 may bea stand-alone set-top box or a personal computer that enables mediacapture, storage and playback to and from the storage device. Mediarecording device 120 is capable of output to multiple viewing devices,such as televising device 130, computing device 140 and mobile device150, for delivering playback. Media recording device 120 may includeinternal and external components as described further with respect toFIG. 3.

Media storage 122 stores media content including audio data, video data,and data-broadcasting data such as television program metadata. Metadatamay include text such as title, cast, producers, directors, writers,summary, subtitles, or related media such as cover art graphics ortrailer video files. Media recording device 120 includes a scheduler(not shown) that tracks all currently recorded programs and programsscheduled to be recorded. A program can be recorded if at all timesbetween when the recording would be initiated and when it expires,sufficient space is available on media storage 122 to hold it. While inFIG. 1, media storage 122 is included in media recording device 120, oneof skill in the art will appreciate that in other embodiments, mediastorage 122 may be located elsewhere within media viewing environment100 and can communicate with conversion program 124 via network 110.

Conversion program 124 selects media content from media storage 122 forconversion, for example, to a lower quality file type, in order toincrease available storage space in media storage 122. Conversionprogram 124 determines the media content for conversion based on alikely viewing device, for example, whether video data is typicallyviewed on a televising device or on a mobile device.

Televising device 130, computing device 140 and mobile device 150 areelectronic devices capable of receiving media content from mediarecording device 120. Televising device 130 is capable of deliveringvideo playback and includes an audio output device, such as a speaker(not shown), and user interface (UI) 132. UI 132 displays video data,data-broadcasting data or television video received with a televisionreceiver from an over-the-air, satellite, or other wireless transmissionantenna, or from a cable (not shown).

In various embodiments of the present invention, computing device 140 ormobile device 150 can be a laptop computer, tablet computer, netbookcomputer, personal computer (PC), a personal digital assistant (PDA), asmart phone, or any programmable electronic device capable of deliveringvideo playback and communicating with media recording device via network110. In this exemplary embodiment, computing device 140 includes userinterface (UI) 142 and mobile device 150 includes user interface (UI)152. UI 142 and UI 152 may be, for example, a graphical user interface(GUI) or a web user interface (WUI) and can display text, documents,user options, and media content, such as video data.

FIG. 2 is a flowchart depicting operational steps of a conversionprogram, for selecting and converting media content based on the viewingdevice of the media content, in accordance with an embodiment of thepresent invention.

Conversion program 124 selects media content to convert (block 202). Invarious embodiments of the present invention, media content is selectedfor conversion based on past history, for example, which recorded mediaa user is least likely to watch, or based on user preferences, forexample, a user may choose various recorded content to be converted ifnecessary. Media content may also be selected based on media genrebecause the viewing quality of several media genres, such as news showsor cartoons, may not be impacted by conversion to the same extent asother genres. Additionally, a user may store preferences regarding whowill be viewing media content, for example, a child may not be asconcerned about quality as an adult and therefore children's programsmay be selected for conversion before other media content is selected.For another example, an adult who watches certain content while focusedon other tasks may want to set a preference that this content may beselected for conversion before other media content is selected.

Conversion program 124 determines whether there are multiple viewingdevices in the media viewing environment, for example, media viewingenvironment 100 (decision block 204). Conversion program 124 can detectviewing devices connected to media recording device 120. In variousembodiments, viewing devices may be connected through a cable, whichpermits communication between media recording device 120 and the viewingdevice, or a user may enter properties of connected viewing devices. Ifthere are multiple viewing devices (decision block 204, yes branch),conversion program 124 determines the likely viewing device of theselected media content (block 206). In media viewing environment 100,for example, certain shows or genres, for example, news or sportsprograms, may often (or always) be watched on the same viewing device.This can be determined by a viewing history kept by conversion program124 and stored, in one embodiment, in media storage 122.

Conversion program 124 determines the appropriate conversioninstructions for the selected media content based on the likely viewingdevice for the media content (block 208). Conversion instructions may bedetermined according to the visual properties of the multiple viewingdevices. For example, mobile device 150 may have a lower display sizeand resolution than televising device 130, and therefore a higherconversion algorithm selection will not result in as noticeable areduction in visual quality than if it were to be displayed ontelevising device 130. Conversion instructions may be determinedaccording to the processing properties of the multiple viewing devices.For example, a first instance of computing device 140 may have a mediaplayer with superior processing features that can better renderconverted media than a different media player on a second instance ofcomputing device 140, and therefore a higher conversion algorithmselection will not result in as noticeable a reduction in visual qualitythan if it were to be displayed on the second instance of computingdevice 140.

If there are not multiple viewing devices (decision block 204, nobranch), for example, only a televising device is present, conversionprogram 124 determines the appropriate conversion instructions for theselected media content based on playback on the televising device (block208).

Conversion program 124 converts the media content (block 210). Using thedetermined instructions, the media content is converted to a new formatand the converted content is stored in media storage 122. In anexemplary embodiment, internal processes are updated to access theconverted media content and the previous media content is removed frommedia storage 122. Also, in various embodiments, conversion program 124may not convert media content that is currently being viewed.Additionally, conversion program 124 will not allow a user to accessmedia content that is in the process of being converted, or will cancela conversion if media content is accessed by a user. A user may alsoschedule a time for conversion program 124 to run, for example,overnight or when devices within media viewing environment 100 are notin use.

FIG. 3 depicts a block diagram of components of media recording device120, in accordance with an illustrative embodiment of the presentinvention. It should be appreciated that FIG. 3 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environment may be made.

Media recording device 120 can include communications fabric 302, whichprovides communications between computer processor(s) 304, memory 306,persistent storage 308, communications unit 310, and input/output (I/O)interface(s) 312. Communications fabric 302 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric302 can be implemented with one or more buses.

Memory 306 and persistent storage 308 are computer-readable storagemedia. In this embodiment, memory 306 includes random access memory(RAM) 314 and cache memory 316. In general, memory 306 can include anysuitable volatile or non-volatile computer-readable storage media.

Media storage 122 and conversion program 124 on media recording device120 can be stored in persistent storage 308 for execution and/or accessby one or more of the respective computer processors 304 via one or morememories of memory 306. In this embodiment, persistent storage 308includes a magnetic hard disk drive. Alternatively, or in addition to amagnetic hard disk drive, persistent storage 308 can include a solidstate hard drive, a semiconductor storage device, read-only memory(ROM), erasable programmable read-only memory (EPROM), flash memory, orany other computer-readable storage media that is capable of storingprogram instructions or digital information.

The media used by persistent storage 308 may also be removable. Forexample, a removable hard drive may be used for persistent storage 308.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage308.

Communications unit 310, in these examples, provides for communicationswith other data processing systems or devices, including between mediarecording device 120, televising device 130, computing device 140 andmobile device 150. In these examples, communications unit 310 includesone or more network interface cards. Communications unit 310 may providecommunications through the use of either or both physical and wirelesscommunications links. Media storage 122 and conversion program 124 onmedia recording device 120 may be downloaded to persistent storage 308through communications unit 310.

I/O interface(s) 312 allows for input and output of data with otherdevices that may be connected to media recording device 120. Forexample, I/O interface 312 may provide a connection to external devices318 such as a keyboard, keypad, a touch screen, and/or some othersuitable input device. External devices 318 can also include portablecomputer-readable storage media such as, for example, thumb drives,portable optical or magnetic disks, and memory cards. Software and dataused to practice embodiments of the present invention, e.g., mediastorage 122 and conversion program 124 on media recording device 120,can be stored on such portable computer-readable storage media and canbe loaded onto persistent storage 308 via I/O interface(s) 312. Invarious embodiments of the present invention, I/O interface(s) 312 mayalso connect to a display 320. Display 320 can provide a mechanism todisplay data and media content to a user and may be, for example, acomputer monitor or an incorporated display screen, such as is used intablet computers and smart phones.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

1.-7. (canceled)
 8. A computer program product for managing mediastorage, the computer program product comprising: one or morecomputer-readable tangible storage media and program instructions storedon the one or more computer-readable tangible storage media, the programinstructions comprising: program instructions to determine that storagespace is needed on a storage device, wherein the storage device storesone or more media files; program instructions to determine a likelyviewing device for a media file selected from the one or more mediafiles; and program instructions to convert the media file from a firstformat to a second format, based on the determined likely viewingdevice.
 9. The computer program product of claim 8, wherein the one ormore media files include one or more of: an audio file, a video file, ora data-broadcast file.
 10. The computer program product of claim 8,wherein program instructions to determine that storage space is neededon a storage device comprise: program instructions to determine that atleast one new media file is to be stored on the storage device; programinstructions to determine required storage space for the at least onenew media file; and program instructions to determine that the storagedevice does not have the required storage space.
 11. The computerprogram product of claim 8, further comprising: prior to programinstructions to determine the likely viewing device for the media file,program instructions to select the media file based on one or more of:elapsed time since the media file was last viewed, indicated content ofthe media file, and one or more indications associated with the mediafile.
 12. The computer program product of claim 8, wherein programinstructions to determine the likely viewing device comprise: programinstructions to request, from a communication network, details of aviewing device, wherein such details include one or more of: a displayresolution, a display size, and a media processing capability; programinstructions to determine a viewing history of the media file, whereinthe viewing history includes a viewing device previously used for themedia file; and program instructions to determine the likely viewingdevice based on at least one of the details of a viewing device and aviewing history of the media file.
 13. The computer program product ofclaim 8, wherein the determined likely viewing device includes one ormore of: a televising device, a stationary computing device and a mobilecomputing device.
 14. The computer program product of claim 8, whereinthe second format is a lower quality digital format than the firstformat.
 15. A computer system for managing media storage, the computersystem comprising: one or more computer processors; one or morecomputer-readable tangible storage media; program instructions stored onthe one or more computer-readable tangible storage media for executionby at least one of the one or more computer processors, the programinstructions comprising: program instructions to determine that storagespace is needed on a storage device, wherein the storage device storesone or more media files; program instructions to determine a likelyviewing device for a media file selected from the one or more mediafiles; and program instructions to convert the media file from a firstformat to a second format, based on the determined likely viewingdevice.
 16. The computer system of claim 15, wherein the one or moremedia files include one or more of: an audio file, a video file, or adata-broadcast file.
 17. The computer system of claim 15, whereinprogram instructions to determine that storage space is needed on astorage device comprise: program instructions to determine that at leastone new media file is to be stored on the storage device; programinstructions to determine required storage space for the at least onenew media file; and program instructions to determine that the storagedevice does not have the required storage space.
 18. The computer systemof claim 15, further comprising: prior to program instructions todetermine the likely viewing device for the media file, programinstructions to select the media file based on one or more of: elapsedtime since the media file was last viewed, indicated content of themedia file, and one or more indications associated with the media file.19. The computer system of claim 15, wherein program instructions todetermine the likely viewing device comprise: program instructions torequest, from a communication network, details of a viewing device,wherein such details include one or more of: a display resolution, adisplay size, and a media processing capability; program instructions todetermine a viewing history of the media file, wherein the viewinghistory includes a viewing device previously used for the media file;and program instructions to determine the likely viewing device based onat least one of the details of a viewing device and a viewing history ofthe media file.
 20. The computer system of claim 15, wherein thedetermined likely viewing device includes one or more of: a televisingdevice, a stationary computing device and a mobile computing device. 21.The computer system of claim 15, wherein the second format is a lowerquality digital format than the first format.